package com.demo.connectdbtest.module.common.util;
//
//import com.sanlian.popo.activity.admin.module.sysUser.bean.SysRoleResourceExt;
//import org.springframework.context.annotation.Scope;
//import org.springframework.stereotype.Component;
//
//import java.util.ArrayList;
//import java.util.LinkedHashMap;
//import java.util.List;
//import java.util.Map;
//
///**
// * @author: xhf
// * @date: 2021/4/13
// * @desc: 菜单权限树形关系工具类
// **/
//@Component
//@Scope("prototype")
public class MenuTreeUtil {
//
//    //已经查询出来的list集合
//    private List<SysRoleResourceExt> menuCommon;
//    //返回给前端的NewTree List集合
//    private List<Object> list = new ArrayList<Object>();
//
//    public List<Object> menuList(List<SysRoleResourceExt> menu){
//        this.menuCommon = menu;
//        // 通过遍历menu，找到父节点为0的节点，它是顶级父节点
//        // 然后调用menuChild，递归遍历所有子节点
//        for (SysRoleResourceExt x : menu) {
//            Map<String,Object> mapArr = new LinkedHashMap<String, Object>();
//            if(0 == x.getParentId()){
//                mapArr.put("id", x.getId());
//                mapArr.put("roleId", x.getRoleId());
//                mapArr.put("resourceId", x.getResourceId());
//                mapArr.put("permission", x.getPermission());
//                mapArr.put("roleKey", x.getRoleKey());
//                mapArr.put("resourceKey", x.getResourceKey());
//                mapArr.put("parentId", x.getParentId());
//                mapArr.put("name", x.getResourceKey());
//                mapArr.put("path", x.getPath());
//                mapArr.put("sequence", x.getSequence());
//                //遍历开始
//                mapArr.put("childrenRoleResourceList", menuChild(x.getId()));
//                list.add(mapArr);
//            }
//        }
//        list.sort((o1, o2) -> {
//            Map<String, Object> o1m = (Map<String, Object>) o1;
//            Map<String, Object> o2m = (Map<String, Object>) o2;
//            Integer i1 = (Integer) o1m.get("sequence");
//            Integer i2 = (Integer) o2m.get("sequence");
//            return i1.compareTo(i2);
//        });
//        return list;
//    }
//
//    private List<?> menuChild(Long roleId){
//        List<Object> lists = new ArrayList<Object>();
//        //继续遍历menu
//        for(SysRoleResourceExt a : menuCommon){
//            Map<String,Object> childArray = new LinkedHashMap<String, Object>();
//            //找到父ID等于父节点ID的子节点
//            if(a.getParentId().equals(roleId)){
//                childArray.put("id", a.getId());
//                childArray.put("roleId", a.getRoleId());
//                childArray.put("resourceId", a.getResourceId());
//                childArray.put("permission", a.getPermission());
//                childArray.put("roleKey", a.getRoleKey());
//                childArray.put("resourceKey", a.getResourceKey());
//                childArray.put("parentId", a.getParentId());
//                childArray.put("name", a.getResourceKey());
//                childArray.put("path", a.getPath());
//                childArray.put("sequence", a.getSequence());
//                //向下递归
//                childArray.put("childrenRoleResourceList", menuChild(a.getId()));
//                lists.add(childArray);
//            }
//        }
//        lists.sort((o1, o2) -> {
//            Map<String, Object> o1m = (Map<String, Object>) o1;
//            Map<String, Object> o2m = (Map<String, Object>) o2;
//            Integer i1 = (Integer) o1m.get("sequence");
//            Integer i2 = (Integer) o2m.get("sequence");
//            return i1.compareTo(i2);
//        });
//        return lists;
//    }
//
}
